package com.starleague.battletech.hexagonal;

import com.starleague.hexagonal.HexException;
import com.starleague.hexagonal.IHexCoordinate;

public interface IBattletechHexGridFactory<HEX_GRID extends IBattletechHexGrid<HEX>, HEX extends IBattletechHex<HEX_GRID>>
{
    HEX_GRID createHexGrid(int minGridX,
                           int minGridY,
                           int numHexesX,
                           int numHexesY) throws HexException;

    HEX createHex(HEX_GRID hexGrid,
                  IHexCoordinate hexCoordinate,
                  int elevation) throws HexException;

    IBattletechHexTerrain<HEX> createHexTerrain(HEX hex,
                                                BattletechHexTerrainType hexTerrainType,
                                                int level) throws HexException;
}
